"""
错误处理模块 - 统一导入接口
提供健壮的错误处理、重试机制和断路器模式
"""

# 导入核心组件
from .error_types import (
    ErrorType, 
    RetryStrategy, 
    RetryConfig, 
    ErrorContext
)

from .error_classifier import ErrorClassifier

from .retry_engine import (
    RetryDecisionEngine,
    CircuitBreaker
)

from .robust_executor import (
    RobustExecutor,
    robust_executor,  # 全局实例
    with_retry        # 装饰器
)

# 向后兼容的导出
__all__ = [
    # 基础类型
    'ErrorType',
    'RetryStrategy', 
    'RetryConfig',
    'ErrorContext',
    
    # 核心组件
    'ErrorClassifier',
    'RetryDecisionEngine', 
    'CircuitBreaker',
    'RobustExecutor',
    
    # 便捷接口
    'robust_executor',
    'with_retry'
]

# 使用示例
async def example_usage():
    """使用示例"""
    
    # 方式1：直接使用执行器
    async def risky_api_call():
        # 模拟可能失败的API调用
        import random
        if random.random() < 0.3:  # 30%的失败率
            raise Exception("API temporarily unavailable")
        return {"status": "success", "data": "some_data"}
    
    try:
        result = await robust_executor.execute_with_retry(
            risky_api_call, 
            "external_api"
        )
        print(f"Success: {result}")
    except Exception as e:
        print(f"Final failure: {e}")
    
    # 方式2：使用装饰器
    @with_retry("google_veo3")
    async def generate_video_with_retry():
        # 实际的视频生成逻辑
        pass
    
    # 检查服务健康状态
    health_status = robust_executor.get_all_service_health()
    print(f"Service health: {health_status}")